The present invention relates generally to network device interface and, more particularly, to an apparatus and method for digitally interfacing data channels with a controller over a common network bus.
In many industries today, monitoring systems are used to assess either possible system failures or the affects of environment and other external forces on an object of interest. For example, in the avionics industry, monitoring systems are employed to monitor parameters, such as strains, acceleration, pressures, corrosion, and temperatures at various critical structural locations on aircraft. Similarly, such monitoring systems could be used in the automobile industry to control and monitor everything from on/off occupant controls to drive-train controls and multimedia systems.
Many of these conventional monitoring systems use a plurality of remote devices, such as sensors, actuators, and subsystems that are placed about the object being monitored at the critical locations. Further, many of these conventional monitoring systems include either one or several controllers connected to each of the remote devices for receiving data from the remote devices and sending commands to the remote devices. During operation, the controllers acquire data from the various sensors. The controllers also activate the actuators to perform functions on the object.
Although these conventional monitoring systems provide a way to monitor critical structures of an object, they do have some drawbacks. For example, many of the conventional monitoring systems use dedicated wiring and signal conditioning to connect each of the remote devices to the controller. Additionally, many of the remote devices are typically analog, and data received from the remote devices is typically in analog form.
In many industries today, including the avionics and automotive industries, the complexity of the network may make many conventional monitoring systems impractical for a number of reasons. Specifically, the dedicated wiring and signal conditioning can be expensive, bulky, heavy and hard to install and maintain. This is especially critical in aircraft applications, where weight and size concerns are at the forefront. Further, in the automotive industry, the added wiring may add weight and cost to the car.
Additionally, as stated, many conventional monitoring systems transmit data in an analog format. Typically, analog signals are susceptible to noise introduced into the signals during data transmission. Given that many of the transmitted signals have a low amplitude to start with, this noise can corrupt the signal and decrease the signal to noise ratio levels that cause loss of resolution in the signal. Further, as many of these remote devices are scattered a fair distance from the controller, the electrical lines connecting the remote devices to the controller may be sufficiently long to cause signal degradation due to DC resistance in the wiring.
In light of this, it would be advantageous to replace the dedicated wiring and the analog transmission with a common bus and use digital transmission of data. But, many conventional digital networks suffer from a variety of problems themselves. For example, many existing digital networks demand complicated protocols requiring processors and, thus, forcing unacceptably large or costly remote devices. Processor based sensing devices may also have problems taking samples of analog data, or causing an actuator to take an action, at exactly the right time. Complicated protocols also introduce overhead into the messages on the bus that are not necessary for data acquisition and control. This overhead can severely limit the number of data samples that can be transmitted on the bus. These networks also have other problems. For example, they generally do not support both acquisition and control, and they typically only support short network lengths. Further, these conventional networks typically have bulky network device interfaces, slow network data rates, or a low network device count. Additionally, many computer systems that include digital networks do not operate in a time-deterministic manner. These computer systems generally lack the capability to schedule a trigger command to the network components that repeats or is interpreted and executed with any precision timing.
In light of the foregoing, it would be advantageous to provide a network system that allows network components to digitally communicate over an inexpensive, simple and high-speed, yet robust, network line with a simple, low overhead message protocol, small component size and low wire count. The network system would also advantageously operate without the use of a microcontroller or processor for the network devices. Also, the network system would support both acquisition and control, and be capable of acquiring or converting data simultaneously from the networked components. Further, the network system would allow for high component counts, longer network lines and insure time determinism in a precise manner.
A brief definition of network objects here is necessary to understand and avoid confusion in this specification. The first network object to be defined is the bus controller. The bus controller is network device that sends commands on the network bus. All other devices on the network listen to the bus controller and take actions based on the commands of the bus controller. A network device is any device on the network that is not a bus controller. A network device is often referred to as a remote device throughout this disclosure. A Network Device Interface (NDI) is a component of a network device. An NDI listens to the bus controller and any other traffic on the bus, and depending on the traffic on the network bus, performs an action or causes the network device to perform an action. Most NDIs will be connected to at least one or more data channels. A data channel is a sensor, an actuator, a sensor and signal conditioning, an actuator and signal conditioning, or other analog or digital system. A data channel is a component of or is connected to the network device.
As described in greater detail below, the present invention remedies these and other problems by providing a network device interface (NDI) for connecting various data channels, such as sensors, actuators, and subsystems, to a common controller for transmission of commands and data to and from the data channels and the controller. Importantly, the NDI device of the present invention connects various data channels to the controller via a common network, thereby permitting the various data channels to share the same wiring for communicating with the controller. Further, the NDI of the present invention can interface to different types of data channels, which can be analog-to-digital or digital-to-analog or other. Sensors are connected to the NDI as analog-to-digital data channels and actuators are connected to the NDI as digital-to-analog data channels. The NDI of the present invention is capable of taking the digital data from an analog-to-digital channel, formatting it according to the proper protocol, and transmitting it onto the network according to the protocol. The NDI of the present invention is also capable of taking digital data from the network, providing it as digital data to a Digital-to-Analog converter (D/A), and causing the D/A to convert the data to an analog signal. It is possible for other embodiments of the NDI to accept or produce analog signals directly to and from its data channels. By transmitting the data across the network in a digital format, the commands and data are less susceptible to noise and degradation.
Further, the NDI device of the present invention operates in conjunction with a data protocol that allows the controller to communicate with either one or several network devices at a time across the network. Importantly, the data protocol used by the NDI device of the present invention has a fixed, low-level instruction set. Due to the simplicity of the protocol, the NDI device of the present invention is not required to be a high-level processor. Instead, in one preferred embodiment, the NDI device of the present invention is a state machine implemented as an Application Specific Integrated Circuit (ASIC). An advantage of using a state machine to implement the NDI device instead of a micro-controller or processor is that many processes can occur simultaneously, which aids the NDI device to be time deterministic and fast.
Advantageously, in one embodiment, the present invention provides a network device interface capable of communicating commands and data between a controller and a data channel using either synchronous or asynchronous communication. In this embodiment, the NDI device includes a receiver for receiving messages from the controller via the common digital bus. The NDI device of this embodiment further includes an interface for providing commands to the associated data channel in response to messages received by the receiver and for receiving data from the associated data channel. Additionally, the NDI device includes a transmitter for transmitting messages to the controller via the common digital bus. Importantly, the NDI device further includes a synchronous network bus clock detector.
In operation, when data is received from the controller, the clock detector of the NDI device of the present invention determines whether a clock signal accompanies the data from the controller. If a clock signal is present, then the controller is communicating in synchronous mode. In this instance, the NDI device uses the clock signal to provide commands and data to and receive data from the data channel. Further, the transmitter of the NDI device of the present invention uses the bus clock signal to transmit data to the controller.
However, if the clock detector of the NDI device does not detect a clock signal associated with the data sent from the controller, the NDI device determines that the bus controller is operating in the asynchronous mode. In this instance, the NDI device provides commands and data to and receives data from the data channel in an asynchronous mode independent of a bus clock. Further, the transmitter of the NDI device of the present invention transmits data to the controller asynchronously independent of a bus clock in the synchronous mode.
In one embodiment, the controller provides synchronous clock signals via a common clock bus. In this instance, the clock detector of the present invention receives the synchronous clock signals and analyses the signals to determine whether it is being sent at the same rate as the data bits. If so, the clock detector of the network device interface determines that the controller is operating in the synchronous mode.
Additionally, in some embodiments, the network device interface of the present invention may further include a bit rate detector connected to the common digital bus. In this embodiment, if the controller is operating in an asynchronous mode, the controller is transmitting commands and data at a certain bit rate. The bit rate detector of the present invention detects the bit rate, and the NDI device uses this bit rate to send commands and data to the data channel and receive data from the data channel. Further, the transmitter of the present invention uses the detected bit rate to transmit data back to the controller.
In addition to transmitting data in an asynchronous mode at a defined bit rate, the controller may also alter the bit rate during communication. In this embodiment, the controller may initially transmit a first message to a data channel at a predetermined bit rate. In this embodiment, the clock detector will not detect a synchronous clock signal, but the bit rate detector will detect the first bit rate at which the message is transmitted by the controller. Based on this first bit rate, the network device interface of the present invention uses this bit rate to send commands and data to the data channel and receive data from the data channel. Further, the transmitter of the present invention uses the detected first bit rate to transmit data back to the controller.
After the first or several messages are sent at the first bit rate, the controller may alter the bit rate and send a second message at a second bit rate. In this embodiment, the bit rate detector of the NDI device will detect the second bit rate at which the message is transmitted by the controller. Based on this second bit rate, the NDI device of the present invention uses this bit rate to receive commands and arguments from the bus controller and send data back to the bus controller.
In one embodiment, the controller may send an example message at an altered bit rate from the bit rate previously used for sending commands and data. In this embodiment, the bit rate detector of the NDI device detects the change in bit rate and the transmitter of the NDI device transmits data back to the controller at the new bit rate thereby, signifying that the bit rate has been altered. Further, in another embodiment, the controller may send a baud select command that defines the bit rate at which messages are to be transmitted.
As mentioned, the NDI device of the present invention operates in conjunction with a protocol. In one embodiment, the protocol uses a plurality of different addresses to address either one or several data channels at the same time. For example, in one embodiment of the present invention, the protocol uses a logical address to address an individual data channel, a group address to address a number of data channels, and a global address to address all data channels at the same time. In this embodiment, the logical and group masks are stored in a memory device associated with the NDI device of the present invention. The group masks are an efficient way for the NDI device to store a list of group addresses for each channel. A group mask is constructed that comprises a plurality of bits for each data channel. Each bit of the mask is associated with a respective group and has a first state indicating that the respective data channel is a member of the group and a second state indicating that the respective data channel is a nonmember of the group. The mask is also stored in the memory associated with the network device interface.
In this embodiment, whenever a command or data is sent it will include either a logical, group, or global address. For each command or data message that is sent, the address associated with the message is analyzed by the NDI device. If the address is global, the NDI device will implement the command. Likewise, if the address is logical and corresponds to the logical address of a data channel associated with the NDI device, the NDI device will implement the command. If the address is a group address, the NDI device of the present invention will determine if a data channel associated with NDI device is a member of the group defined by the group address by analyzing the mask associated with the respective data channel. The network device interface will only implement the command if the data channel is a member of the group having the group address.
As discussed above, the NDI device of the present invention is capable of operating in either a synchronous or asynchronous mode. Further, the controller is capable of providing a group address to send a command to a plurality of data channels at the same time. A problem arises, however, when the NDI devices connected to each data channel are operating in asynchronous mode, in that it is difficult to synchronize them such that they apply the command associated with the group address at the same time to the respective data channels connected to them. In light of this, in one embodiment, the NDI devices can be synchronized, even though they are operating in asynchronous mode.
Specifically, in one embodiment of the present invention, the controller transmits a command to a plurality of data channels, wherein the command comprises a plurality of bits having a value defined by a transition between first and second states. In this embodiment, each of the NDI devices of the present invention commences implementation of the command at the same predetermined time relative to the transition that defines the value of a respective bit of the command such that the plurality of network device interfaces perform the command simultaneously in a time-deterministic manner. In one further embodiment, the controller transmits a command comprising a sync portion, a message body and a parity bit. In this embodiment, the NDI devices of the present invention commence performance of the command coincident with the transition that defines the value of the parity bit. Further, in another embodiment, the controller transmits a command comprising a start bit, a command field, an address filed having an unused last bit set to 0, and a stop bit set 1. In this embodiment, the NDI devices of the present invention commence performance of the function at each data channel coincident with the transition from the unused bit of the address field to the stop bit.
In addition, as described above, in the synchronous mode, the controller transmits a synchronous clock signal on the common digital bus. In this embodiment, the NDI device of the present invention may also provide for synchronous implementation of commands between several network device interfaces by using the synchronous clock signal. Specifically, in this embodiment, the controller transmits a command to a plurality of data channels, where the message comprises a plurality of bits having a value defined by a transition between first and second states. Further, the controller transmits a synchronous clock signal comprised of a plurality of clock pulses from the controller to the plurality of data channels simultaneous with the message. In this embodiment, the plurality of the network device interfaces will commence performance of the command at the same predetermined time as defined by a respective clock pulse which, in turn, is defined based upon a predetermined relationship to a respective bit of the message.
For example, in one embodiment, the network device interfaces commence performance in synchronization with the first clock pulse following the respective bit of the message. Specifically, in one embodiment, the message transmitted has a plurality of bits having a value defined by a transition between a first state and a second state and the message defines a sync portion, a message body and a parity bit. In this embodiment, the network device interfaces commence performance of the command at the same predetermined time as defined by a respective clock pulse which is, in turn, defined based upon a predetermined relationship to the transition that defines the value of the parity bit of the message.
As discussed, the NDI device of the present invention operates in conjunction with a protocol that has a fixed, low-level instruction set that, in turn, allows in some case for use of simplified controllers and network device interfaces on network devices. Specifically, in one embodiment, the present invention provides a protocol stored on a computer-readable medium. The protocol is used for transmitting commands and data between a controller and a network device interface across a common digital network. Importantly, the protocol includes at least one of a command and a data structure for sending respective commands and arguments to data channels. The data structure is also used to send data from data channels to the bus controller.
In light of this, the present invention also provides a serial, multiplexed communication system that uses state machines. Specifically, the communication system of the present invention includes a controller for issuing a plurality of commands and a plurality of data channels for performing predefined functions in response to the commands. Connecting the controller and network device interface is a common digital bus for supporting communication therebetween. Further, the communication system includes a plurality of network device interfaces, one of which is associated with each data channel for interconnecting the respective data channels with the common digital bus. In this embodiment, each network device interface comprises a state machine and is independent of a processor.
As mentioned previously, in the synchronous mode, the controller provides a synchronous clock signal across the network bus to the network device interfaces. In the synchronous mode, the synchronous clock is used as the clock signal for transmitting data. However, some A/D and D/A converters, as well as some signal conditioning devices, cannot operate at the clock speed set by the synchronous clock. In light of this, in one embodiment of the present invention, the network device interface of the present invention may include a clock divider. The clock divider may either be connected to the synchronous clock signal output by the controller or it may be connected to a local oscillator.
Specifically, in this embodiment, there is a bus controller, sending a synchronous clock signal and commands to the network devices at one frequency, and NDI devices listening to the synchronous clock and data from the bus controller. The NDI devices are converting the data and commands from the bus controller into the proper format expected by the data channels connected to the NDI devices, and the NDI devices are simultaneously providing the divided second clock signal to data channels, such that the data channels operate in accordance with the second clock signal frequency to convert data while the controller and NDI devices operates in accordance with a first clock frequency to send commands and data over the network bus.
In one further embodiment, the NDI device of the present invention further includes a method for synchronizing the dividers associated with each NDI device with those of all other NDI devices connected to the common digital bus. Specifically, as stated previously, in some embodiments, the controller will send a group address so that a command is performed on a plurality of data channels at the same time. In order for this to occur, however, all of the clock dividers provided to data channels that use the divided clock located at each NDI device must be synchronized. In light of this, in one embodiment, the controller sends a first clock signal across the common digital bus. Further, the controller commands each of the dividers to synchronize the transmission of their respective second clock signals with an edge of the first clock signal such that individual second clock signals provided by each of the dividers is synchronized with respect to the first clock signal to thereby synchronize each of the converters.
In addition to operating in accordance with different clock signals, some A/D and D/A converters also operate in accordance with specialized commands that are different from the commands used by the controller. In light of this, the network device interface of the present invention may include a special feature used to provide the specialized commands for the converter. This feature is called command translation. As such, during operation, the NDI device of the present invention receives commands and data from the controller in accordance with a first set of commands and converts the command in accordance with a second set of commands for application to the converter. Further, the NDI device of the present invention may send data received from the converter across the common digital bus in accordance with the first set of commands.
The preferred protocol for the NDI devices uses Manchester encoding of network data bits to help allow miniaturization of the NDI devices. It must be understood that for any device to receive asynchronous serial data, it must be able to acquire the timing of the data sequence from the serial data stream. Normally, the receiver of the serial asynchronous data must have a local oscillator to cause its receiver to operate, and recover the timing information from the serial data. Once the timing information has been extracted, the asynchronous receiver is able to receive serial data at certain rates, plus or minus a certain deviation from these rates, given this local oscillator frequency. Manchester encoding of serial data causes a transition from high to low or low to high in the center of every bit. This makes it easy to extract the necessary timing information from the serial data stream. Because it is so easy to extract the timing information from the Manchester encoded serial data stream, a relatively large deviation from the expected data rate, based on the local oscillator can be tolerated. This tolerance to relatively large deviations from the expected data rates allows each NDI receiver to use a low accuracy local oscillator to receive the Manchester encoded data. Low accuracy local oscillators can be made extremely small. Current embodiments of adequate local oscillators are only about 1xc3x971.5 millimeters. This aids in making miniature NDI devises.